﻿	 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RBAC.DAL.Entities
{
	[Serializable]
    public class Role : BaseEntity
    {
																	public virtual String RoleCode { get; set; }
															public virtual String RoleName { get; set; }
															public virtual String Description { get; set; }
															public virtual DateTime CreateDate { get; set; }
															public virtual int RoleStatus { get; set; }
															public virtual IList<Permission> Permissions { get; set; }
					
        /* note 2 T4 ถ้า attribute type เป็น virtual IList type ต้อง
          สร้าง contructor เพื่อป้องกัน Add list ที่เป็น null */
        public Role()
        {
									Permissions = new List<Permission>();
							
				        }

        /* note 2 T4 AddEvaluation และ RemoveEvaluation method จะสร้างก็ต่อเมื่อ
           มี type ที่เป็น virtual IList ***ที่ class ภายใน IList<class??> มี class นี้ เป็น attribute ด้วย */
		   						public virtual void AddPermissions(Permission arg)
						{
							//arg.Role = this;
							Permissions.Add(arg);
						}
										    }
}
